package cn.iocoder.yudao.module.system.controller.admin.book.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;

@Schema(description = "管理后台 - 绘本提交 Request VO")
@Data
public class BookSubmitReqVO {

    @Schema(description = "绘本名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "小红帽")
    @NotBlank(message = "绘本名称不能为空")
    @Size(max = 100, message = "绘本名称长度不能超过100个字符")
    private String title;

    @Schema(description = "会话UUID", requiredMode = Schema.RequiredMode.REQUIRED, example = "a1b2c3d4-e5f6-7890-abcd-ef1234567890")
    @NotBlank(message = "会话UUID不能为空")
    private String sessionUuid;

    @Schema(description = "压缩包tempKey", requiredMode = Schema.RequiredMode.REQUIRED, example = "pkg_a1b2c3d4_1640995200_sign")
    @NotBlank(message = "压缩包tempKey不能为空")
    private String compressedTempKey;

    @Schema(description = "封面tempKey", requiredMode = Schema.RequiredMode.REQUIRED, example = "cov_a1b2c3d4_1640995200_sign")
    @NotBlank(message = "封面tempKey不能为空")
    private String coverTempKey;

    @Schema(description = "压缩包临时URL", requiredMode = Schema.RequiredMode.REQUIRED, example = "http://192.168.158.130:6901/books/temp/a1b2c3d4/resource.zip")
    @NotBlank(message = "压缩包临时URL不能为空")
    private String minioObjectUrl;

    @Schema(description = "封面临时URL", requiredMode = Schema.RequiredMode.REQUIRED, example = "http://192.168.158.130:6901/books/temp/a1b2c3d4/cover.jpg")
    @NotBlank(message = "封面临时URL不能为空")
    private String coverUrl;

    @Schema(description = "格式说明", example = "包含 01.mp4、01.mp3 等按页码命名的文件")
    private String formatDescription;
} 